import 'package:flutter/material.dart';

extension ColorEx on Color {
  /// 改变颜色亮度，模拟颜料混合后的颜色
  ///
  /// 将当前颜色与黑色或白色混合，[value] < 0.5时与黑色混合，数值越小，颜色越暗。[value] > 0.5时与白色混合，数值越大，颜色越亮
  Color mixValue(double value) {
    return HSVColor.fromColor(this).withValue(value).toColor();
  }

  /// 将颜色值转化为文本表示
  /// [withAlpha]表示转化的颜色是否带透明度
  String colorToHex({bool withAlpha = true}) {
    String colorStr = value.toRadixString(16);
    if (withAlpha) {
      if (colorStr.length == 6) {
        colorStr += 'FF';
      }
    } else if (colorStr.length == 8) {
      colorStr = colorStr.substring(2);
    }
    return '#$colorStr';
  }
}
